An input/output (I/O) adapter may include hardware components, called physical functions, which are associated with multiple virtual functions. Programmatic objects that correspond to the virtual functions can occupy a considerable amount of memory. Unused objects may be removed, or de-allocated, to efficiently manage computer memory storage. Such objects may no longer be useful after a configuration change, for instance.
De-allocation processes may be complicated by the relatively large number of objects associated with the virtual functions. For example, a thread may try to read storage of an object that is in the process of being deleted. Additionally, deleting all of the objects at the same time may cause system delays and interrupted performance.